<?php
/*
  $Id: pos.php,v 1.1.1.1 2004/03/04 23:40:45 ccwjr Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
*/

  class pos {
    var $pos_id, $info, $totals, $products, $customer, $delivery, $content_type, $states, $country, $s_states, $s_country, $b_states, $b_country ;

    function pos($pos_id = '') {
      $this->info = array();
      $this->totals = array();
      $this->products = array();
      $this->customer = array();
      $this->delivery = array();
      $this->billing = array();

      if (tep_not_null($pos_id)) {
        $this->query($pos_id);
      } else {
        $this->cart($pos_id);
      }
    }

    function query($pos_id) {
      global $languages_id;

      $pos_id = tep_db_prepare_input($pos_id);

      $pos_query = tep_db_query("select customers_id, customers_name, customers_company, customers_street_address, customers_suburb, customers_city, customers_postcode, customers_state, customers_country, customers_telephone, customers_email_address, customers_address_format_id, delivery_name, delivery_company, delivery_street_address, delivery_suburb, delivery_city, delivery_postcode, delivery_state, delivery_country, delivery_address_format_id, billing_name, billing_company, billing_street_address, billing_suburb, billing_city, billing_postcode, billing_state, billing_country, billing_address_format_id, payment_method, cc_type, cc_owner, cc_number, cc_ccv, cc_expires, cc_start, cc_issue, payment_id, currency, currency_value, date_purchased, pos_status, ipaddy, ipisp, last_modified from " . TABLE_POS . " where pos_id = '" . (int)$pos_id . "'");
      $pos = tep_db_fetch_array($pos_query);

      $totals_query = tep_db_query("select title, text from " . TABLE_POS_TOTAL . " where pos_id = '" . (int)$pos_id . "' order by sort_order");
      while ($totals = tep_db_fetch_array($totals_query)) {
        $this->totals[] = array('title' => $totals['title'],
                                'text' => $totals['text']);
      }

      $pos_total_query = tep_db_query("select text, value from " . TABLE_POS_TOTAL . " where pos_id = '" . (int)$pos_id . "' and code = 'ot_total'");
      $pos_total = tep_db_fetch_array($pos_total_query);

      $shipping_method_query = tep_db_query("select title, value from " . TABLE_POS_TOTAL . " where pos_id = '" . (int)$pos_id . "' and code = 'ot_shipping'");
      $shipping_method = tep_db_fetch_array($shipping_method_query);

      $pos_status_query = tep_db_query("select pos_status_name from " . TABLE_POS_STATUS . " where pos_status_id = '" . $pos['pos_status'] . "' and language_id = '" . (int)$languages_id . "'");
      $pos_status = tep_db_fetch_array($pos_status_query);

      $this->info = array('currency' => $pos['currency'],
                          'currency_value' => $pos['currency_value'],
                          'payment_method' => $pos['payment_method'],
                          'cc_type' => $pos['cc_type'],
                          'cc_owner' => $pos['cc_owner'],
                          'cc_number' => $pos['cc_number'],
                          'cc_start' => $pos['cc_start'],
                          'cc_issue' => $pos['cc_issue'],
                          'cc_ccv' => $pos['cc_ccv'],
                          'cc_expires' => $pos['cc_expires'],
                          'date_purchased' => $pos['date_purchased'],
//begin PayPal_Shopping_Cart_IPN
                          'payment_id' => $pos['payment_id'],
                          'pos_status' => $pos['pos_status'],
                          'shipping_cost' => $shipping_method['value'],
                          'total_value' => $pos_total['value'],
//end PayPal_Shopping_Cart_IPN
                          'pos_status' => $pos_status['pos_status_name'],
                          'pos_status_number' => $pos['pos_status'],
                          'last_modified' => $pos['last_modified'],
                          'total' => strip_tags($pos_total['text']),
                          'shipping_method' => ((substr($shipping_method['title'], -1) == ':') ? substr(strip_tags($shipping_method['title']), 0, -1) : strip_tags($shipping_method['title'])));

      $this->customer = array('name' => $pos['customers_name'],
                              //begin PayPal_Shopping_Cart_IPN
                              'id' => $pos['customers_id'],
                              //end PayPal_Shopping_Cart_IPN
                              'company' => $pos['customers_company'],
                              'street_address' => $pos['customers_street_address'],
                              'suburb' => $pos['customers_suburb'],
                              'city' => $pos['customers_city'],
                              'postcode' => $pos['customers_postcode'],
                              'state' => $pos['customers_state'],
                              'country' => $pos['customers_country'],
                              'format_id' => $pos['customers_address_format_id'],
                              'telephone' => $pos['customers_telephone'],
                              'email_address' => $pos['customers_email_address'],
                              'ipaddy' => $pos['ipaddy'],
                              'ipisp' => $pos['ipisp']);


      $this->delivery = array('name' => $pos['delivery_name'],
                              'company' => $pos['delivery_company'],
                              'street_address' => $pos['delivery_street_address'],
                              'suburb' => $pos['delivery_suburb'],
                              'city' => $pos['delivery_city'],
                              'postcode' => $pos['delivery_postcode'],
                              'state' => $pos['delivery_state'],
                              'country' => $pos['delivery_country'],
                              'format_id' => $pos['delivery_address_format_id']);

      if (empty($this->delivery['name']) && empty($this->delivery['street_address'])) {
        $this->delivery = false;
      }

      $this->billing = array('name' => $pos['billing_name'],
                             'company' => $pos['billing_company'],
                             'street_address' => $pos['billing_street_address'],
                             'suburb' => $pos['billing_suburb'],
                             'city' => $pos['billing_city'],
                             'postcode' => $pos['billing_postcode'],
                             'state' => $pos['billing_state'],
                             'country' => $pos['billing_country'],
                             'format_id' => $pos['billing_address_format_id']);

      $index = 0;
      $pos_products_query = tep_db_query("select pos_products_id, products_id, products_name, products_model, products_price, products_tax, products_quantity, final_price from " . TABLE_POS_PRODUCTS . " where pos_id = '" . (int)$pos_id . "'");
      while ($pos_products = tep_db_fetch_array($pos_products_query)) {
       $this->products[$index] = array('qty' => $pos_products['products_quantity'],
                                  'id' => $pos_products['products_id'],
//begin PayPal_Shopping_Cart_IPN
                                        'pos_products_id' => $pos_products['pos_products_id'],
//end PayPal_Shopping_Cart_IPN
                                        'name' => $pos_products['products_name'],
                                        'model' => $pos_products['products_model'],
                                        'tax' => $pos_products['products_tax'],
                                        'price' => $pos_products['products_price'],
                                        'final_price' => $pos_products['final_price']);

  // Eversun mod for sppc and qty price breaks
  if(!tep_session_is_registered('sppc_customer_group_id')) {
    $customer_group_id = '0';
  } else {
    $customer_group_id = $sppc_customer_group_id;
  }
  if ($customer_group_id != '0'){
    $pos_customers_price = tep_db_query("select customers_group_price from " . TABLE_PRODUCTS_GROUPS . " where customers_group_id = '". $customer_group_id . "' and products_id = '" . $products[$i]['id'] . "'");
    if ($pos_customers = tep_db_fetch_array($pos_customers_price)){
      $this->products[$index] = array('price' => $pos_customers['customers_group_price'], 'final_price' => $pos_customers['customers_group_price']);
    }
  }
// Eversun mod for sppc and qty price breaks

//check to see if product is a sub product
//(int)$pos_products['pos_products_id']

                 $products_id_tmp = (int)$pos_products['pos_products_id'];
                  if(tep_subproducts_parent($products_id_tmp)){
                   $products_id_query = tep_subproducts_parent($products_id_tmp);
                   }else{
                   $products_id_query = $products_id_tmp;
                   }


        $subindex = 0;
        $attributes_query = tep_db_query("select products_options_id, products_options, products_options_values_id, products_options_values, options_values_price, price_prefix from " . TABLE_POS_PRODUCTS_ATTRIBUTES . " where pos_id = '" . (int)$pos_id . "' and pos_products_id = '" . (int)$products_id_tmp . "'");

        if (tep_db_num_rows($attributes_query)) {
          while ($attributes = tep_db_fetch_array($attributes_query)) {
            $this->products[$index]['attributes'][$subindex] = array(
//begin PayPal_Shopping_Cart_IPN
                                  'option_id' => $attributes['products_options_id'],
                                  'value_id' => $attributes['products_options_values_id'],
//end PayPal_Shopping_Cart_IPN
                                  'value' => $attributes['products_options_values'],
                                  'option' => $attributes['products_options'],
                                  'option_name' => $attributes['products_options_name'],
                                  'prefix' => $attributes['price_prefix'],
                                  'price' => $attributes['options_values_price']);

            $subindex++;
          }
        }

        $this->info['tax_groups']["{$this->products[$index]['tax']}"] = '1';

        $index++;
      }
    }

    function cart() {
       global $customer_id, $sendto, $billto, $cart, $languages_id, $currency, $currencies, $shipping, $payment, $statea, $country_title_s, $format_id_s;

  //    $this->content_type = $cart->get_content_type();

      $this->content_type = 'mixed';


      $this->info = array('pos_status' => DEFAULT_ORDERS_STATUS_ID,
                          'currency' => $currency,
                          'currency_value' => $currencies->currencies[$currency]['value'],
                          'payment_method' => $payment,
                          'cc_type' => (isset($GLOBALS['cc_type']) ? $GLOBALS['cc_type'] : ''),
                          'cc_owner' => (isset($GLOBALS['cc_owner']) ? $GLOBALS['cc_owner'] : ''),
                          'cc_number' => (isset($GLOBALS['cc_number']) ? $GLOBALS['cc_number'] : ''),
                          'cc_ccv' => (isset($GLOBALS['cc_ccv']) ? $GLOBALS['cc_ccv'] : ''),
                          'cc_start' => (isset($GLOBALS['cc_start']) ? $GLOBALS['cc_start'] : ''),
                          'cc_issue' => (isset($GLOBALS['cc_issue']) ? $GLOBALS['cc_issue'] : ''),
                          'cc_expires' => (isset($GLOBALS['cc_expires']) ? $GLOBALS['cc_expires'] : ''),
                          'shipping_method' => $shipping['title'],
                          'shipping_cost' => $shipping['cost'],
                          'subtotal' => 0,
                          'tax' => 0,
                          'tax_groups' => array(),
                          'comments' => (isset($GLOBALS['comments']) ? $GLOBALS['comments'] : ''));

      if (isset($GLOBALS[$payment]) && is_object($GLOBALS[$payment])) {
        $this->info['payment_method'] = $GLOBALS[$payment]->title;

        if ( isset($GLOBALS[$payment]->pos_status) && is_numeric($GLOBALS[$payment]->pos_status) && ($GLOBALS[$payment]->pos_status > 0) ) {
          $this->info['pos_status'] = $GLOBALS[$payment]->pos_status;
        }
      }
// Get cutomeradress info
      $customer_address_query = tep_db_query("select c.customers_firstname, c.customers_lastname, c.customers_telephone, c.customers_email_address, ab.entry_company, ab.entry_street_address, ab.entry_suburb, ab.entry_postcode, ab.entry_city, ab.entry_zone_id, ab.entry_state, ab.entry_country_id from " . TABLE_CUSTOMERS . " c, " . TABLE_ADDRESS_BOOK . " ab  where c.customers_id = '" . (int)$customer_id . "' and ab.customers_id = '" . (int)$customer_id . "' and c.customers_default_address_id = ab.address_book_id");
 while ( $customer_address = tep_db_fetch_array($customer_address_query) ){

$customer_country_query = tep_db_query("select co.countries_id, co.countries_name, co.countries_iso_code_2, co.countries_iso_code_3, co.address_format_id from " . TABLE_COUNTRIES . " co  where co.countries_id = '" . $customer_address['entry_country_id'] . "'");
 while ($customer_country = tep_db_fetch_array($customer_country_query) ) {
                              $country_array = array('id' => $customer_country['countries_id'], 'title' => $customer_country['countries_name'], 'iso_code_2' => $customer_country['countries_iso_code_2'], 'iso_code_3' => $customer_country['countries_iso_code_3']);


  $customer_zone_query = tep_db_query("select z.zone_name from " . TABLE_ZONES . " z where z.zone_id ='" . $customer_address['entry_zone_id'] . "' ");
               if (tep_not_null($customer_address['entry_state'])){
                   $states = $customer_address['entry_state'];
                  }else{
       while ($customer_zone1 = tep_db_fetch_array($customer_zone_query) ) {
                   $states = $customer_zone1['zone_name'];
                   }
                }

//build customer info array
  $this->customer = array('firstname' => $customer_address['customers_firstname'],
                              'lastname' => $customer_address['customers_lastname'],
                              'company' => $customer_address['entry_company'],
                              'street_address' => $customer_address['entry_street_address'],
                              'suburb' => $customer_address['entry_suburb'],
                              'city' => $customer_address['entry_city'],
                              'postcode' => $customer_address['entry_postcode'],
                              'state' => $states,
                              'zone_id' => $customer_address['entry_zone_id'],
                              'country' => $country_array,
                              'country_id' => $customer_address['entry_country_id'],
                              'format_id' => $customer_country['address_format_id'],
                              'telephone' => $customer_address['customers_telephone'],
                              'email_address' => $customer_address['customers_email_address'],
                              );

}
}
     $shipping_address_query = tep_db_query("select ab.entry_firstname, ab.entry_lastname, ab.entry_company, ab.entry_street_address, ab.entry_suburb, ab.entry_postcode, ab.entry_city, ab.entry_zone_id, ab.entry_country_id, ab.entry_state from " . TABLE_ADDRESS_BOOK . " ab where ab.customers_id = '" . (int)$customer_id . "' and ab.address_book_id = '" . (int)$sendto . "'");
 while ($shipping_address = tep_db_fetch_array($shipping_address_query) ){

    $shipping_zone_query= tep_db_query("select co.countries_id, co.countries_name, co.countries_iso_code_2, co.countries_iso_code_3, co.address_format_id from "  . TABLE_COUNTRIES . " co  where co.countries_id = '" . $shipping_address['entry_country_id'] ."'");
   while ($shipping_zone = tep_db_fetch_array($shipping_zone_query) ) {
                                   $s_country = array('id' => $shipping_zone['countries_id'], 'title' => $shipping_zone['countries_name'], 'iso_code_2' => $shipping_zone['countries_iso_code_2'], 'iso_code_3' => $shipping_zone['countries_iso_code_3']);


      $shipping_zone_query1= tep_db_query("select  z.zone_name from " . TABLE_ZONES . " z where z.zone_id = '" . $shipping_address['entry_zone_id'] . "' ");
               if (tep_not_null($shipping_address['entry_state'])){
                            $s_states = $shipping_address['entry_state'];
                                }else{
                   while ($shipping_zone1 = tep_db_fetch_array($shipping_zone_query1) ) {
                                  $s_states = $shipping_zone1['zone_name'];
                                  }
                                }

$this->delivery = array('firstname' => $shipping_address['entry_firstname'],
                              'lastname' => $shipping_address['entry_lastname'],
                              'company' => $shipping_address['entry_company'],
                              'street_address' => $shipping_address['entry_street_address'],
                              'suburb' => $shipping_address['entry_suburb'],
                              'city' => $shipping_address['entry_city'],
                              'postcode' => $shipping_address['entry_postcode'],
                              'state' => $s_states,
                              'zone_id' => $shipping_address['entry_zone_id'],
                              'country' =>  $s_country,
                              'country_id' => $shipping_address['entry_country_id'],
                              'format_id' => $shipping_zone['address_format_id']);

  }
 }
//}
      $billing_address_query = tep_db_query("select ab.entry_firstname, ab.entry_lastname, ab.entry_company, ab.entry_street_address, ab.entry_suburb, ab.entry_postcode, ab.entry_city, ab.entry_zone_id, ab.entry_country_id, ab.entry_state from " . TABLE_ADDRESS_BOOK . " ab where ab.customers_id = '" . (int)$customer_id . "' and ab.address_book_id = '" . (int)$billto . "'");
      while ($billing_address = tep_db_fetch_array($billing_address_query) ){


        $billing_zone_query= tep_db_query("select co.countries_id, co.countries_name, co.countries_iso_code_2, co.countries_iso_code_3, co.address_format_id from " . TABLE_COUNTRIES . " co  where co.countries_id = '" . $billing_address['entry_country_id'] ."'");
        while ($billing_zone = tep_db_fetch_array($billing_zone_query) ){
                 $b_country = array('id' => $billing_zone['countries_id'], 'title' => $billing_zone['countries_name'], 'iso_code_2' => $billing_zone['countries_iso_code_2'], 'iso_code_3' => $billing_zone['countries_iso_code_3']);

       $billing_zone_query1= tep_db_query("select z.zone_name from " . TABLE_ZONES . " z where z.zone_id ='" . $billing_address['entry_zone_id'] . "' ");
         if (tep_not_null($billing_address['entry_state'])){
                  $b_state = $billing_address['entry_state'];
              }else{
          while ($billing_zone1 = tep_db_fetch_array($billing_zone_query1) ){
              $b_state = $billing_zone1['zone_name'];
              }
           }
      $this->billing = array('firstname' => $billing_address['entry_firstname'],
                             'lastname' => $billing_address['entry_lastname'],
                             'company' => $billing_address['entry_company'],
                             'street_address' => $billing_address['entry_street_address'],
                             'suburb' => $billing_address['entry_suburb'],
                             'city' => $billing_address['entry_city'],
                             'postcode' => $billing_address['entry_postcode'],
                              'state' => $b_state,
                              'zone_id' => $billing_address['entry_zone_id'],
                              'country' => $b_country,
                              'country_id' => $billing_address['entry_country_id'],
                              'format_id' => $billing_zone['address_format_id']);
  }
}
      $tax_address_query = tep_db_query("select ab.entry_country_id, ab.entry_zone_id from " . TABLE_ADDRESS_BOOK . " ab where ab.customers_id = '" . (int)$customer_id . "' and ab.address_book_id = '" . (int)($this->content_type == 'virtual' ? $billto : $sendto) . "'");
      $tax_address = tep_db_fetch_array($tax_address_query);

    $index = 0;

     if ($pos_id <= '0'){
      return ;
      }else{
      $products = $cart->get_products();


      for ($i=0, $n=sizeof($products); $i<$n; $i++) {
        $this->products[$index] = array('qty' => $products[$i]['quantity'],
                                        'name' => $products[$i]['name'],
                                        'model' => $products[$i]['model'],
                                        'tax' => tep_get_tax_rate($products[$i]['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']),
                                        'tax_description' => tep_get_tax_description($products[$i]['tax_class_id'], $tax_address['entry_country_id'], $tax_address['entry_zone_id']),
                                        'price' => $products[$i]['price'],
                                        'final_price' => $products[$i]['price'] + $cart->attributes_price($products[$i]['id']),
                                        'weight' => $products[$i]['weight'],
                                        'id' => $products[$i]['id']);

        $products_id_tmp = tep_get_prid($products[$i]['id']);

        if ($products[$i]['attributes']) {
          $subindex = 0;
          reset($products[$i]['attributes']);
          while (list($option, $value) = each($products[$i]['attributes'])) {
                            if(tep_subproducts_parent($products_id_tmp)){
                             $products_id_query = tep_subproducts_parent($products_id_tmp);
                             }else{
                             $products_id_query = $products_id_tmp;
                   }

            // BOM - Options Catagories
            if ( !is_array($value) ) {
              $attributes_query = tep_db_query("select op.options_id, ot.products_options_name, o.options_type, ov.products_options_values_name, op.options_values_price as price, op.price_prefix
                                                from " . TABLE_PRODUCTS_ATTRIBUTES . " op,
                                                     " . TABLE_PRODUCTS_OPTIONS . " o,
                                                     " . TABLE_PRODUCTS_OPTIONS_TEXT . " ot,
                                                     " . TABLE_PRODUCTS_OPTIONS_VALUES . " ov
                                                where op.products_id = '" . $products_id_query . "'
                                                  and op.options_id = '" . $option . "'
                                                  and o.products_options_id = '" . $option . "'
                                                  and ot.products_options_text_id = '" . $option . "'
                                                  and op.options_values_id = '" . $value . "'
                                                  and ov.products_options_values_id = '" . $value . "'
                                                  and ov.language_id = '" . (int)$languages_id . "'
                                                  and ot.language_id = '" . (int)$languages_id . "'
                                               ");
              $attributes = tep_db_fetch_array($attributes_query);
              $this->products[$index]['attributes'][$subindex] = array('option' => $attributes['products_options_name'],
                                                                       'value' => $attributes['products_options_values_name'],
                                                                       'option_id' => $option,
                                                                       'value_id' => $value,
                                                                       'prefix' => $attributes['price_prefix'],
                                                                       'price' => $attributes['price']);
              $subindex++;
            } elseif ( isset($value['c'] ) ) {
              foreach ($value['c'] as $v) {
                $attributes_query = tep_db_query("select op.options_id, ot.products_options_name, o.options_type, ov.products_options_values_name, op.options_values_price as price, op.price_prefix
                                                  from " . TABLE_PRODUCTS_ATTRIBUTES . " op,
                                                     " . TABLE_PRODUCTS_OPTIONS . " o,
                                                     " . TABLE_PRODUCTS_OPTIONS_TEXT . " ot,
                                                     " . TABLE_PRODUCTS_OPTIONS_VALUES . " ov
                                                  where op.products_id = '" . $products_id_query . "'
                                                    and op.options_id = '" . $option . "'
                                                    and o.products_options_id = '" . $option . "'
                                                    and ot.products_options_text_id = '" . $option . "'
                                                    and op.options_values_id = '" . $v . "'
                                                    and ov.products_options_values_id = '" . $v . "'
                                                    and ov.language_id = '" . (int)$languages_id . "'
                                                    and ot.language_id = '" . (int)$languages_id . "'
                                                 ");
                $attributes = tep_db_fetch_array($attributes_query);
                $this->products[$index]['attributes'][$subindex] = array('option' => $attributes['products_options_name'],
                                                                       'value' => $attributes['products_options_values_name'],
                                                                       'option_id' => $option,
                                                                       'value_id' => $v,
                                                                       'prefix' => $attributes['price_prefix'],
                                                                       'price' => $attributes['price']);
                $subindex++;
              }
            } elseif ( isset($value['t'] ) ) {
              $attributes_query = tep_db_query("select op.options_id, ot.products_options_name, o.options_type, op.options_values_price as price, op.price_prefix
                                                from " . TABLE_PRODUCTS_ATTRIBUTES . " op,
                                                     " . TABLE_PRODUCTS_OPTIONS . " o,
                                                     " . TABLE_PRODUCTS_OPTIONS_TEXT . " ot
                                                where op.products_id = '" . $products_id_query . "'
                                                  and op.options_id = '" . $option . "'
                                                  and o.products_options_id = '" . $option . "'
                                                  and ot.products_options_text_id = '" . $option . "'
                                                  and ot.language_id = '" . (int)$languages_id . "'
                                               ");
              $attributes = tep_db_fetch_array($attributes_query);
              $this->products[$index]['attributes'][$subindex] = array('option' => $attributes['products_options_name'],
                                                                       'value' => $value['t'],
                                                                       'option_id' => $option,
                                                                       'value_id' => '0',
                                                                       'prefix' => $attributes['price_prefix'],
                                                                       'price' => $attributes['price']);
              $subindex++;
            }
// EOM - Options Catagories
          }
        }

        $shown_price = tep_add_tax($this->products[$index]['final_price'], $this->products[$index]['tax']) * $this->products[$index]['qty'];
        $this->info['subtotal'] += $shown_price;

        $products_tax = $this->products[$index]['tax'];
        $products_tax_description = $this->products[$index]['tax_description'];

      // Eversun mod for sppc and qty price breaks
//       if (DISPLAY_PRICE_WITH_TAX == 'true') {
    global $sppc_customer_group_show_tax;
    if(!tep_session_is_registered('sppc_customer_group_show_tax')) {
      $customer_group_show_tax = '1';
    } else {
      $customer_group_show_tax = $sppc_customer_group_show_tax;
    }
    if (DISPLAY_PRICE_WITH_TAX == 'true' && $customer_group_show_tax == '1') {
// Eversun mod for sppc and qty price breaks

          $this->info['tax'] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));
          if (isset($this->info['tax_groups']["$products_tax_description"])) {
            $this->info['tax_groups']["$products_tax_description"] += $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));
          } else {
            $this->info['tax_groups']["$products_tax_description"] = $shown_price - ($shown_price / (($products_tax < 10) ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax)));
          }
        } else {
          $this->info['tax'] += ($products_tax / 100) * $shown_price;
          if (isset($this->info['tax_groups']["$products_tax_description"])) {
            $this->info['tax_groups']["$products_tax_description"] += ($products_tax / 100) * $shown_price;
          } else {
            $this->info['tax_groups']["$products_tax_description"] = ($products_tax / 100) * $shown_price;
          }
        }

        $index++;
      }


//this code just adjust what is showen and doe not actuall caculate the totals
       //Eversun mod for sppc and qty price breaks
  global $sppc_customer_group_show_tax;
        if(!tep_session_is_registered('sppc_customer_group_show_tax')) {
        $customer_group_show_tax = '1';
        } else {
        $customer_group_show_tax = $sppc_customer_group_show_tax;
        }
        if ((DISPLAY_PRICE_WITH_TAX == 'true') && ($customer_group_show_tax == '1')) {
        $this->info['total'] = $this->info['subtotal'] + $this->info['shipping_cost'];
      } else {
        $this->info['total'] = $this->info['subtotal'] + $this->info['tax'] + $this->info['shipping_cost'];
      }
     }
    }//end function

  } //end class
?>
